// 2013-9-11下午10:48:03  net.betou.trade.main.dao.role.Dao.java

package net.betou.trade.main.dao.role;

import java.util.List;

import net.betou.common.hibernate3.Updater;
import net.betou.common.page.Pagination;
import net.betou.trade.entity.main.Role;

/**
 * 
 * @author 叶装装
 */
public interface Dao{

	/**
	 * 根据ID查找
	 * @param id
	 * @return
	 */
	public Role findById( Integer id );
	
	/**
	 * 	根据ID删除
	 * @param id
	 * 					传入的ID
	 * @return
	 */
	public Role deleteById( Integer id );
	
	/**
	 * 保存
	 * @param bean
	 * @return
	 */
	public Role save( Role bean );

	/**
	 * 更新
	 * @param updater
	 * @return
	 */
	public Role updateByUpdater( Updater< Role > updater );
	
	/**
	 * 查找Role
	 * @param manager
	 * 					是否是系统管理分组
	 * @param id
	 * 					
	 * @return
	 */
	public Role findByManager( Boolean manager,  Integer id );
	
	/**
	 * 根据identity查找出列表数据
	 * @param identity
	 * @return
	 */
	public List< Role > getListByIdentity( String identity );
	
	/**
	 * 查找最大的level
	 * @param id
	 * 					管理员ID
	 * @return
	 */
	public Integer maxLevel( Integer id );
	
	/**
	 * 使用sql语句查询
	 * @param searchProperty
	 * @param searchValue
	 * @param orderProperty
	 * @param orderDirection
	 * @param pageNo
	 * @param pageSize
	 * @param sql
	 * @return
	 */
	public Pagination getPageByCriteria( String searchProperty, String searchValue, String orderProperty, String orderDirection, int pageNo, int pageSize, String sql );
}
